package com.yuju.vo.order;

import java.math.BigDecimal;
import java.util.Date;

import com.yuju.common.BaseVO;
import com.yuju.common.fileld.validator.Rule.NonNull;
/**
 * 
 * 类名：ReserveVO  <br />
 *
 * 功能：
 *
 * @author : sunyl <br />
 * @Date : 2017年11月25日 下午4:28:51  <br />
 * @version : 1.1 <br />
 */
public class ReserveVO extends BaseVO{

	// 每页显示记录数
	@NonNull(message = "每页显示行数不能为空", serviceLine = "pager")
	public Integer pageSize;
	
	// 当前页码
	@NonNull(message = "页数不能为空", serviceLine = "pager")
	public Integer page;
	
   public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
		this.setRows(this.pageSize);
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}
	 /**
     *  待支付金额。指的是线上预订单待支付金额。,所属表字段为ord_reserve.unpaid_money
     */
	@NonNull(message = "待支付金额", serviceLine = "weChart")
    private BigDecimal unpaidMoney;
		
	/**
     *  主键。存储UUID，由应用生成。,所属表字段为ord_reserve.id
     */
	@NonNull(message = "主键不能为空", serviceLine = "update,del")
    private String id;

    /**
     *  预订单号。,所属表字段为ord_reserve.reserve_no
     */
    private String reserveNo;

    /**
     *  所属酒店。外键，引用酒店信息表（grp_hotel）的主键（id）。,所属表字段为ord_reserve.hotel_id
     */
    @NonNull(message = "所属酒店不能为空", serviceLine = "save,weChart")
    private String hotelId;
    
    @NonNull(message = "所属酒店编码不能为空", serviceLine = "save,weChart")
    private String hotelCode;

    /**
     *  预订人姓名。,所属表字段为ord_reserve.reserve_name
     */
    @NonNull(message = "预定人不能为空", serviceLine = "save,weChart")
    private String reserveName;

    /**
     *  手机号。,所属表字段为ord_reserve.mobile
     */
    @NonNull(message = "手机号不能为空", serviceLine = "save,weChart")
    private String mobile;

    /**
     *  证件类型。1身份证，2港澳通行证，3护照，4军官证，5其他证件。,所属表字段为ord_reserve.certificate_type
     */
    @NonNull(message = "证件类型不能为空", serviceLine = "save")
    private Byte certificateType;

    /**
     *  证件编号。,所属表字段为ord_reserve.certificate_code
     */
    private String certificateCode;

    /**
     *  预抵时间。,所属表字段为ord_reserve.in_time
     */
    @NonNull(message = "预抵时间不能为空", serviceLine = "save,weChart")
    private Date inTime;

    /**
     *  预离时间。,所属表字段为ord_reserve.out_time
     */
    @NonNull(message = "预离时间不能为空", serviceLine = "save,weChart")
    private Date outTime;

    /**
     *  入住天数。,所属表字段为ord_reserve.day_count
     */
    @NonNull(message = "入住天数不能为空", serviceLine = "save,weChart")
    private Integer dayCount;

    /**
     *  保留时间。,所属表字段为ord_reserve.keep_time
     */
    @NonNull(message = "保留时间不能为空", serviceLine = "save")
    private Date keepTime;

    /**
     *  客户ID。根据客户类型，对应表中的主键。,所属表字段为ord_reserve.custom_id
     */
    @NonNull(message = "客户Id不能为空", serviceLine = "weChart,customId")
    private String customId;
    /**
     *  客户类型。,所属表字段为ord_reserve.custom_type
     */
    @NonNull(message = "客户类型不能为空", serviceLine = "save")
    private Byte customType;

    /**
     *  客户类型名称。,所属表字段为ord_reserve.custom_type_name
     */
    @NonNull(message = "客户类型名称不能为空", serviceLine = "save")
    private String customTypeName;


    /**
     *  价格方案ID。外键，引用价格方案表（hot_scheme）的主键（id）。,所属表字段为ord_reserve.price_scheme_id
     */
    private String priceSchemeId;

    /**
     *  入住类型。,所属表字段为ord_reserve.checkin_type
     */
    @NonNull(message = "入住类型不能为空", serviceLine = "save")
    private Byte checkinType;

    /**
     *  入住标准ID。外键，引用入住标准（hot_checkin_standard）的主键（id）。,所属表字段为ord_reserve.checkin_standard_id
     */
    @NonNull(message = "入住标准ID不能为空", serviceLine = "save")
    private String checkinStandardId;

    /**
     *  渠道。,所属表字段为ord_reserve.channel
     */
    @NonNull(message = "渠道不能为空", serviceLine = "save")
    private byte channel;
    
    /**
     *  渠道名称。,所属表字段为ord_reserve.channel_name
     */
    private String channelName;
    
    /**
     *  入住标准名称,所属表字段为ord_reserve.checkin_standard_name
     */
    @NonNull(message = "入住标准名称不能为空", serviceLine = "save")
    private String checkinStandardName;

    /**
     *  价格方案名称,所属表字段为ord_reserve.price_scheme_name
     */
    private String priceSchemeName;
    /**
     *  预订状态。,所属表字段为ord_reserve.reserve_status
     */
    private Byte reserveStatus;

    /**
     *  预订状态名称。,所属表字段为ord_reserve.reserve_status_name
     */
    private String reserveStatusName;

    /**
     *  预订金。预订单所收的预订金总数。,所属表字段为ord_reserve.reserve_money
     */
    private BigDecimal reserveMoney;

    /**
     *  预订房间数。,所属表字段为ord_reserve.room_count
     */
    @NonNull(message = "预订房间数不能为空", serviceLine = "weChart")
    private Integer roomCount;

    /**
     *  销售员。外键，引用员工信息表（grp_employee）的主键（id）。,所属表字段为ord_reserve.sale_id
     */
    private String saleId;

    /**
     *  创建时间。,所属表字段为ord_reserve.gmt_create
     */
    private Date gmtCreate;

    /**
     *  修改时间。,所属表字段为ord_reserve.gmt_modified
     */
    private Date gmtModified;

    /**
     *  是否逻辑删除。1表示已逻辑删除，2表示未逻辑删除，默认为2。,所属表字段为ord_reserve.is_deleted
     */
    private Byte isDeleted;

    /**
     *  备注。,所属表字段为ord_reserve.remark
     */
    private String remark;

    /**
     *  所属集团。外键，引用集团信息表（grp_group）的主键（id）。,所属表字段为ord_reserve.group_id
     */
    @NonNull(message = "所属集团不能为空", serviceLine = "save,weChart")
    private String groupId;
    

    /**
     *  租期。,所属表字段为ord_reserve.rent_type
     */
    @NonNull(message = "租期类型不能为空", serviceLine = "save")
    private Byte rentType;



	private static final long serialVersionUID = 1L;
    
    /************************************************************************/
    /**
     *  房间类型。,所属表字段为ord_reserve_room.room_type_id
     */
    @NonNull(message = "房间类型不能为空", serviceLine = "reserveRoom,weChart")
    private String roomTypeId;
    
    @NonNull(message = "房间类型名称不能为空", serviceLine = "reserveRoom")
    private String roomTypeName;
    /**
     *  房间号。,所属表字段为ord_reserve_room.room_code
     */
    private String roomCode;

    /**
     *  房间ID。外键，引用房间信息表（hot_room）的主键（id）。,所属表字段为ord_reserve_room.room_id
     */
    private String roomId;

    /**
     *  房价。订单的房价。系统滚房费时的房价。,所属表字段为ord_reserve_room.room_price
     */
    @NonNull(message = "房价不能为空", serviceLine = "reserveRoom,weChart")
    private BigDecimal roomPrice;

    /**
     *  月租房价。,所属表字段为ord_reserve_room.month_price
     */
    private BigDecimal monthPrice;

    /**
     *  增加早餐数。,所属表字段为ord_reserve_room.add_breakfast
     */
    //@NonNull(message = "增加早餐数不能为空", serviceLine = "reserveRoom")
    private Integer addBreakfast;

    /**
     *  自带早餐数。,所属表字段为ord_reserve_room.default_breakfast
     */
    @NonNull(message = "自带早餐数不能为空", serviceLine = "weChart")
    private Integer defaultBreakfast;

    /**
     *  实际早餐数。,所属表字段为ord_reserve_room.actual_breakfast
     */
    @NonNull(message = "实际早餐数不能为空", serviceLine = "weChart")
    private Integer actualBreakfast;
    
    /*·······························预定管理列表查询新增·······································*/
    /**
     * 开始时间
     */
    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;


    /**
     * 预定姓名
     */
    private String myLike_reserveName;
    
    /**
     * 预定手机号
     */
    private String myLike_mobile;
   
    
    
    /*改价备注*/
    private String  reasonRemark;
    

    
    private Date businessTime;
    
    
    
    
    
    
    
    
    
    
    
    
    
	public Date getBusinessTime() {
		return businessTime;
	}

	public void setBusinessTime(Date businessTime) {
		this.businessTime = businessTime;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}
	

    public String getChannelName() {
		return channelName;
	}

	public void setChannelName(String channelName) {
		this.channelName = channelName;
	}

	public String getCheckinStandardName() {
		return checkinStandardName;
	}

	public void setCheckinStandardName(String checkinStandardName) {
		this.checkinStandardName = checkinStandardName;
	}

	public String getPriceSchemeName() {
		return priceSchemeName;
	}

	public void setPriceSchemeName(String priceSchemeName) {
		this.priceSchemeName = priceSchemeName;
	}

	public String getMyLike_reserveName() {
		return myLike_reserveName;
	}

	public void setMyLike_reserveName(String myLike_reserveName) {
		this.myLike_reserveName = myLike_reserveName;
	}

	public String getMyLike_mobile() {
		return myLike_mobile;
	}

	public BigDecimal getUnpaidMoney() {
		return unpaidMoney;
	}

	public void setUnpaidMoney(BigDecimal unpaidMoney) {
		this.unpaidMoney = unpaidMoney;
	}

	public void setMyLike_mobile(String myLike_mobile) {
		this.myLike_mobile = myLike_mobile;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
	 public Byte getRentType() {
			return rentType;
		}

		public void setRentType(Byte rentType) {
			this.rentType = rentType;
		}
	public String getRoomTypeId() {
		return roomTypeId;
	}

	public void setRoomTypeId(String roomTypeId) {
		this.roomTypeId = roomTypeId;
	}

	public String getRoomId() {
		return roomId;
	}

	public void setRoomId(String roomId) {
		this.roomId = roomId;
	}

	public BigDecimal getRoomPrice() {
		return roomPrice;
	}

	public void setRoomPrice(BigDecimal roomPrice) {
		this.roomPrice = roomPrice;
	}
	
	public BigDecimal getMonthPrice() {
		return monthPrice;
	}

	public void setMonthPrice(BigDecimal monthPrice) {
		this.monthPrice = monthPrice;
	}

	public Integer getAddBreakfast() {
		return addBreakfast;
	}

	public void setAddBreakfast(Integer addBreakfast) {
		this.addBreakfast = addBreakfast;
	}

	public Integer getDefaultBreakfast() {
		return defaultBreakfast;
	}

	public void setDefaultBreakfast(Integer defaultBreakfast) {
		this.defaultBreakfast = defaultBreakfast;
	}

	public Integer getActualBreakfast() {
		return actualBreakfast;
	}

	public void setActualBreakfast(Integer actualBreakfast) {
		this.actualBreakfast = actualBreakfast;
	}

	public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getReserveNo() {
        return reserveNo;
    }

    public void setReserveNo(String reserveNo) {
        this.reserveNo = reserveNo;
    }

    public String getHotelId() {
        return hotelId;
    }

    public void setHotelId(String hotelId) {
        this.hotelId = hotelId;
    }

    public String getReserveName() {
        return reserveName;
    }

    public void setReserveName(String reserveName) {
        this.reserveName = reserveName;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Byte getCertificateType() {
        return certificateType;
    }

    public void setCertificateType(Byte certificateType) {
        this.certificateType = certificateType;
    }

    public String getCertificateCode() {
        return certificateCode;
    }

    public void setCertificateCode(String certificateCode) {
        this.certificateCode = certificateCode;
    }

    public Date getInTime() {
        return inTime;
    }

    public void setInTime(Date inTime) {
        this.inTime = inTime;
    }

    public Date getOutTime() {
        return outTime;
    }

    public void setOutTime(Date outTime) {
        this.outTime = outTime;
    }

    public Integer getDayCount() {
        return dayCount;
    }

    public void setDayCount(Integer dayCount) {
        this.dayCount = dayCount;
    }

    public Date getKeepTime() {
        return keepTime;
    }

    public void setKeepTime(Date keepTime) {
        this.keepTime = keepTime;
    }

    public Byte getCustomType() {
        return customType;
    }

    public void setCustomType(Byte customType) {
        this.customType = customType;
    }

    public String getCustomTypeName() {
        return customTypeName;
    }

    public void setCustomTypeName(String customTypeName) {
        this.customTypeName = customTypeName;
    }

    public String getCustomId() {
        return customId;
    }

    public void setCustomId(String customId) {
        this.customId = customId;
    }

    public String getPriceSchemeId() {
        return priceSchemeId;
    }

    public void setPriceSchemeId(String priceSchemeId) {
        this.priceSchemeId = priceSchemeId;
    }

    public Byte getCheckinType() {
        return checkinType;
    }

    public void setCheckinType(Byte checkinType) {
        this.checkinType = checkinType;
    }

    public String getCheckinStandardId() {
        return checkinStandardId;
    }

    public void setCheckinStandardId(String checkinStandardId) {
        this.checkinStandardId = checkinStandardId;
    }



    public byte getChannel() {
		return channel;
	}

	public void setChannel(byte channel) {
		this.channel = channel;
	}

	public String getReasonRemark() {
		return reasonRemark;
	}

	public void setReasonRemark(String reasonRemark) {
		this.reasonRemark = reasonRemark;
	}

	public Byte getReserveStatus() {
        return reserveStatus;
    }

    public void setReserveStatus(Byte reserveStatus) {
        this.reserveStatus = reserveStatus;
    }

    public String getReserveStatusName() {
        return reserveStatusName;
    }

    public void setReserveStatusName(String reserveStatusName) {
        this.reserveStatusName = reserveStatusName;
    }

    public BigDecimal getReserveMoney() {
        return reserveMoney;
    }

    public void setReserveMoney(BigDecimal reserveMoney) {
        this.reserveMoney = reserveMoney;
    }

    public Integer getRoomCount() {
        return roomCount;
    }

    public void setRoomCount(Integer roomCount) {
        this.roomCount = roomCount;
    }

    public String getSaleId() {
        return saleId;
    }

    public void setSaleId(String saleId) {
        this.saleId = saleId;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }
    

    public String getRoomTypeName() {
		return roomTypeName;
	}

	public String getHotelCode() {
		return hotelCode;
	}

	public void setHotelCode(String hotelCode) {
		this.hotelCode = hotelCode;
	}

	public void setRoomTypeName(String roomTypeName) {
		this.roomTypeName = roomTypeName;
	}

	public String getRoomCode() {
		return roomCode;
	}

	public void setRoomCode(String roomCode) {
		this.roomCode = roomCode;
	}


}
